<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Personal_frm( $this );

	class Personal_frm extends Frm
	{
	function Personal_frm( &$oModule )
		{
			$this->Frm( $oModule );
			//Crea los Objetos de los campos de edicion
			$this->aFields['cdPersona']			= new InputText ( "Nombre", "cdPersona" );
			$this->aFields['dIngreso']				= new InputDate ( "Fecha Ingreso", "dIngreso" );
			$this->aFields['nFicha']					= new InputNumber ( "Ficha", "nFicha" );
			$this->aFields['cApellidoCasada']		= new InputText ( "Apellido casada", "cApellidoCasada" );
			$this->aFields['cApellidoMaterno']	= new InputText ( "Apellido materno", "cApellidoMaterno" );
			$this->aFields['ncEstadoCivil']		= new InputList( "Estado civil", "ncEstadoCivil" );
			$this->aFields['ncNacionalidad']		= new InputList( "Nacionalidad", "ncNacionalidad" );
			$this->aFields['ncGrupo']				= new InputList( "Agenda", "ncGrupo" );
			$this->oModule->setSubModule('entidades');
			$this->aFields['Persona'] = $this->oModule->loadClass( 'Persona_frm' );
			$this->aFields['Persona']->setLevel(  5 );
		}

	function setValue( $ncPersona )
		{
			$cSql = "SELECT ncPersona, dIngreso, nFicha, cApellidoCasada, cApellidoMaterno, ncNacionalidad, ncGrupo, ncEstadoCivil
								FROM atPersonal as Per
								WHERE Per.ncPersona = $ncPersona";
			$aRow = $this->oDatabase->getArray($cSql);
			$this->setFieldsArray ( $aRow );
			$this->aFields['Persona']->aFields['ncPersona']->setValue( $ncPersona);
			return $aRow;
		}
	function initializeForm()
		{
			//$this->aFields['Persona']->aFields['ncGrupo']->setValue(  AGENDA_ORGANIZACION );
			//$this->aFields['Persona']->aFields['ncGrupo']->setHidden();
			$this->aFields['Persona']->setMandatory( true );
			// Si Recibe la Pk => busca los datos
				if ( $this->isRetrievable() && getParam('ncPersona') )
				{
					$this->setValue( getParam('ncPersona') );
				}
			// Configura el Titulo
				$this->setLabel ( "Personal");
			return true;
		}
	function initializeField( $cField , &$oField )
		{
			switch ( $cField )
			{
				case 'cdPersona':
					$oField->setLength( 40 );
					break;
				case 'cApellidoCasada':
					$oField->setLength( 40 );
					// Si el genero es Masculino => No pone apellido casada
					$ncPersona = $this->aFields['Persona']->aFields['ncPersona']->getValue();
					if ( $ncPersona )
					{
						$ncGenero = $this->oDatabase->getData("SELECT ncGenero FROM atPersona WHERE ncPersona = $ncPersona") ;
						if ( $ncGenero == GENERO_MASCULINO ) $oField->setHidden();
					}
					break;
				case 'cApellidoMaterno':
					$oField->setLength( 40 );
					break;
				case 'ncNacionalidad':
					$cSql = "SELECT ncPais, cdPais FROM acPais";
					$oField->setDefault( CODIGO_PAIS_LOCAL );
					$oField->setMatrix( $this->oDatabase->getMatrix($cSql) );
					break;
				case 'ncGrupo':
					$cSql = "SELECT ncGrupo, cdGrupo FROM atGrupo";
					$oField->setMatrix( $this->oDatabase->getMatrix($cSql) );
					break;
				case 'ncEstadoCivil':
					$cSql = "SELECT ncEstadoCivil, cdEstadoCivil FROM acEstadoCivil";
					$oField->setMatrix( $this->oDatabase->getMatrix($cSql) );
					break;
				case 'nFicha':
					$oField->setLength( 7 );
					break;
				case 'Persona':
					$oField->setOptions( $this->getOptions() );
					$oField->setFormName( $this->getFormName() );
					$oField->setOptionsLevel(2);
					$oField->setOptionsType( 'N');
					// $oField->setFieldActions( 'ncPersona');
					//initializePersona( $oField , 'bPersonal=1');
					//$oField->setOnChangeAutoSubmit($this);
				break;
			}
		}
	}
?>